import socket, traceback
# 服务端配置

my_ip = socket.gethostbyname(socket.gethostname())
print(socket.gethostname())     # LAPTOP-9RU1PV3N
print(my_ip)       # 172.17.112.1

ip_port = (my_ip, 8080)    # （服务器IP地址，端口号）

# Step1: 创建socket对象（TCP套接字）

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Step2: 设置socket选项(可选)，对socket的配置重用ip和端口号

s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)

# Step3: 绑定到某一个端口

s.bind(ip_port)
s.listen(5)  # 最多可以连接多少个客户端
print("the server is ready!!!")

# Step4: 监听该端口上的连接

while 1:
    # 阻塞等待，创建连接
    con, address = s.accept()  # 在这个位置进行等待，监听端口号
    while 1:
        try:
            # 接受套接字的大小，怎么发就怎么收
            msg = con.recv(1024)        # msg为接受到的信息，需要进行解码
            if msg.decode('utf-8') == '1':
                # 断开连接
                con.close()
            print('服务器收到消息: ', msg.decode('utf-8'))
        except Exception as e:
            break
# 关闭服务端
s.close()
